﻿namespace Spark.Samples.Logging
{
    //public class ESLogEventHandler : IIntegrationEventHandler<LogEvent>
    //{
    //    private readonly ElasticClient _elasticClient;

    //    public ESLogEventHandler(
    //        IElasticClientFactory elasticClientFactory
    //        )
    //    {
    //        _elasticClient = elasticClientFactory?.Client ?? throw new ArgumentNullException(nameof(elasticClientFactory));
    //        //创建索引
    //        elasticClientFactory.EnsureIndexWithMapping<LogEntry>(elasticClientFactory.DefaultIndex);
    //    }

    //    public async Task Handle(LogEvent @event)
    //    {
    //        try
    //        {
    //            var index = new Random().Next(0, 10);
    //            if (index % 2 == 0)
    //            {
    //                @event.LogInfo.AppCode = "gdx";
    //                @event.LogInfo.ServiceName = "gdx";
    //            }
    //            else if (index % 3 == 0)
    //            {
    //                @event.LogInfo.AppCode = "jyb";
    //                @event.LogInfo.ServiceName = "jyb";
    //            }
    //            else
    //            {
    //                @event.LogInfo.AppCode = "park";
    //                @event.LogInfo.ServiceName = "park";
    //            }

    //            //if (@event.LogInfo.Level.ToLower() == "error")
    //            {
    //                var response = _elasticClient.Index(@event.LogInfo, idx => idx.Id(@event.LogInfo.Id));
    //            }

    //            await Task.FromResult(0);
    //        }
    //        catch (Exception ex)
    //        {
    //        }
    //    }
    //}
}